문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 서버리스 아키텍처 (문단 편집) == 개요 == 서버를 구축할 때 어려움은 크게 다음과 같다. * 대용량 서비스에서의 서버 안정성 * 해킹으로부터의 방어 * 관리 * 서버 애플리케이션 유지보수의 신속성 대용량 서비스에서의 서버 안정성을 위한 대표적인 방법은 서버 하드웨어의 수를 늘리는 것이다. 클라우드 서버를 쓰면 몇 분만에 서버 하드웨어(가상머신이지만...)를 쉽게 늘릴 수 있다. 하지만 서버 하드웨어만 늘린다고 쉽게 대용량 서비스에 대응하는 것이 아니다. 대용량 분산 서버 설계와 구현 능력이 필요하다. 서버 하드웨어를 늘리더라도 서버 미들웨어와 서버 애플리케이션이 마치 한 대의 거대한 수퍼컴퓨터처럼 작동하게 만들 수 있어야 한다. 이는 쉽지 않다. 실력도 실력이지만 오랜 ~~서비스 장애 삽질~~ 경험을 필요로 한다. 그러나 세월이 지나며 많은 경험이 쌓이다 보니, 다음과 같은 분산 서버 설계 패턴이 도출되었다. * 백엔드 서버: 비지니스 로직을 담당하는 서버들의 군집체 * 메모리 데이터 그리드: 메모리 저장소 역할을 담당하는 서버들의 그물망 군집체 * 데이터베이스 샤드 클러스터: 거대한 데이터를 나눠 가지는 서버들의 군집체 이러한 패턴을 미리 설계해서 구현 해놓고, 서버 프로그래머들은 이 위에다가 "자기가 필요한 비지니스로직을 만들어 넣게 해주기만 하면" 되게 만들어 놓았으니...이를 서버리스 아키텍처라고 칭한다. 서버리스 아키텍처는 다음과 같이 구성된다. * 백엔드 서버 => 함수 서비스 * 메모리 데이터 그리드 => 메모리 캐시 서비스 * 데이터베이스 샤드 클러스터 => 데이터베이스 서비스 서버 프로그래머는 함수 서비스에다가 함수를 구현해 놓고, 필요한 만큼의 메모리 캐시 서비스를 예약하고, 데이터베이스 서비스에 들어갈 데이터 구조를 정의하면 끝. 따라서 서버리스 아키텍처는 그 명칭과 달리 서버가 전혀 없는 아키텍처가 아니다. 그 뒷단에는 여전히 실제 서버들이 구성 되어 돌아가고 있으며 단지 서버를 구성하는데 필요한 부분들을 서비스화 하고 단순화시켜 직접 서버를 구축함으로써 발생하는 애로사항 등을 줄이고자 하는 것이다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기